// 天气API服务
import axios from 'axios'

// 创建专用于天气API的axios实例
const weatherService = axios.create({
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 模拟天气数据 - 当API不可用时使用
const mockWeatherData = {
  '101180101': { // 郑州
    cityInfo: {
      city: '郑州',
      citykey: '101180101',
      updateTime: new Date().toLocaleString()
    },
    data: {
      wendu: '25',
      shidu: '40%',
      quality: '良',
      ganmao: '各类人群可自由活动',
      forecast: [
        { date: '14', week: '星期三', type: '晴', high: '高温 28℃', low: '低温 16℃', fx: '东南风', fl: '3级' },
        { date: '15', week: '星期四', type: '多云', high: '高温 27℃', low: '低温 15℃', fx: '东南风', fl: '3级' },
        { date: '16', week: '星期五', type: '小雨', high: '高温 26℃', low: '低温 14℃', fx: '东风', fl: '2级' },
        { date: '17', week: '星期六', type: '晴', high: '高温 29℃', low: '低温 17℃', fx: '东南风', fl: '3级' },
        { date: '18', week: '星期日', type: '晴', high: '高温 30℃', low: '低温 18℃', fx: '南风', fl: '3级' }
      ]
    }
  },
  '101010100': { // 北京
    cityInfo: {
      city: '北京',
      citykey: '101010100',
      updateTime: new Date().toLocaleString()
    },
    data: {
      wendu: '22',
      shidu: '35%',
      quality: '优',
      ganmao: '各类人群可自由活动',
      forecast: [
        { date: '14', week: '星期三', type: '晴', high: '高温 26℃', low: '低温 14℃', fx: '北风', fl: '2级' },
        { date: '15', week: '星期四', type: '多云', high: '高温 25℃', low: '低温 13℃', fx: '东北风', fl: '2级' },
        { date: '16', week: '星期五', type: '晴', high: '高温 27℃', low: '低温 15℃', fx: '东风', fl: '3级' },
        { date: '17', week: '星期六', type: '晴', high: '高温 28℃', low: '低温 16℃', fx: '南风', fl: '3级' },
        { date: '18', week: '星期日', type: '多云', high: '高温 26℃', low: '低温 15℃', fx: '南风', fl: '2级' }
      ]
    }
  },
  '101020100': { // 上海
    cityInfo: {
      city: '上海',
      citykey: '101020100',
      updateTime: new Date().toLocaleString()
    },
    data: {
      wendu: '24',
      shidu: '60%',
      quality: '良',
      ganmao: '各类人群可自由活动',
      forecast: [
        { date: '14', week: '星期三', type: '多云', high: '高温 27℃', low: '低温 18℃', fx: '东南风', fl: '3级' },
        { date: '15', week: '星期四', type: '小雨', high: '高温 25℃', low: '低温 17℃', fx: '东风', fl: '3级' },
        { date: '16', week: '星期五', type: '阴', high: '高温 24℃', low: '低温 16℃', fx: '东北风', fl: '2级' },
        { date: '17', week: '星期六', type: '多云', high: '高温 26℃', low: '低温 17℃', fx: '东风', fl: '2级' },
        { date: '18', week: '星期日', type: '晴', high: '高温 28℃', low: '低温 19℃', fx: '东南风', fl: '3级' }
      ]
    }
  },
  '101280101': { // 广州
    cityInfo: {
      city: '广州',
      citykey: '101280101',
      updateTime: new Date().toLocaleString()
    },
    data: {
      wendu: '30',
      shidu: '70%',
      quality: '良',
      ganmao: '各类人群可自由活动',
      forecast: [
        { date: '14', week: '星期三', type: '多云', high: '高温 32℃', low: '低温 22℃', fx: '南风', fl: '3级' },
        { date: '15', week: '星期四', type: '阵雨', high: '高温 30℃', low: '低温 21℃', fx: '南风', fl: '3级' },
        { date: '16', week: '星期五', type: '雷阵雨', high: '高温 29℃', low: '低温 21℃', fx: '南风', fl: '2级' },
        { date: '17', week: '星期六', type: '多云', high: '高温 31℃', low: '低温 22℃', fx: '南风', fl: '2级' },
        { date: '18', week: '星期日', type: '晴', high: '高温 33℃', low: '低温 23℃', fx: '南风', fl: '3级' }
      ]
    }
  },
  '101280601': { // 深圳
    cityInfo: {
      city: '深圳',
      citykey: '101280601',
      updateTime: new Date().toLocaleString()
    },
    data: {
      wendu: '29',
      shidu: '75%',
      quality: '良',
      ganmao: '各类人群可自由活动',
      forecast: [
        { date: '14', week: '星期三', type: '多云', high: '高温 31℃', low: '低温 23℃', fx: '南风', fl: '3级' },
        { date: '15', week: '星期四', type: '阵雨', high: '高温 30℃', low: '低温 22℃', fx: '南风', fl: '3级' },
        { date: '16', week: '星期五', type: '雷阵雨', high: '高温 28℃', low: '低温 21℃', fx: '南风', fl: '2级' },
        { date: '17', week: '星期六', type: '多云', high: '高温 30℃', low: '低温 22℃', fx: '南风', fl: '2级' },
        { date: '18', week: '星期日', type: '晴', high: '高温 32℃', low: '低温 23℃', fx: '南风', fl: '3级' }
      ]
    }
  }
}

export default {
  // 获取城市天气数据
  async getWeatherByCity(cityCode) {
    try {
      // 尝试从API获取数据
      const response = await weatherService.get(`http://t.weather.itboy.net/api/weather/city/${cityCode}`)
      
      // 直接返回原始数据，不进行额外处理
      return response.data
    } catch (error) {
      console.log('天气API请求失败，使用模拟数据', error)
      
      // 如果API请求失败，使用模拟数据
      if (mockWeatherData[cityCode]) {
        return mockWeatherData[cityCode]
      } else {
        // 如果没有对应城市的模拟数据，使用郑州的数据
        return mockWeatherData['101180101']
      }
    }
  }
}
